#ifndef EDITORMODOS_H
#define EDITORMODOS_H

#include "editordatos.h"
#include "paneltabla.h"
#include "preparadortabla.h"
#include "datosModo.h"
#include "accesomodos.h"

class EditorModos : public EditorDatos
{
    Q_OBJECT
public:
    EditorModos(QWidget* ventanaPadre);
    ~EditorModos();

    bool mostrarDialogoSeleccion(DatosModo& modo); 

    QString getIdentificadorDialogo(bool edicion) { 
        return edicion ? "edicion modo" : "seleccion modo"; }

	void setListaModos(QList<DatosModo> listaModos) { this->listaModos = listaModos; }
	QList<DatosModo> getListaModos() { return listaModos; }

protected:
    void prepararTabla(PanelTabla* panelTabla, bool edicion);
    virtual void actualizarTabla();

    virtual void anadirDatos(DatosModo& compas);
    virtual void modificarDatos(int indice, DatosModo& compas);
    virtual void eliminarDatos(int indice);

    bool editar(const QString& titulo, DatosModo& compas);

protected slots:
    void nuevo();
	void anadir() {}    
    void modificar();
    void copiar();
    void eliminar();    
    void subir();
    void bajar();
    void seleccionado() {}

public slots:
    void actualizar() { actualizarTabla(); }

protected:
    QList<DatosModo> listaModos;
    PreparadorTabla<DatosModo> preparadorTabla;  
    AccesoModos accesoModos;
};

#endif // EDITORMODOS_H
